package com.manage.project.service;

import com.manage.common.entity.FileInfo;
import org.springframework.web.multipart.MultipartFile;


public interface UpYunService {

    /**
     * 上传文件（可覆盖同名文件）
     *
     * @param file
     * @param filePath
     * @return
     */
    String coverUploadMultipartFile(MultipartFile file, String filePath);

    /**
     * 上传文件（无法覆盖同名文件）
     *
     * @param file
     * @return
     */
    String uploadMultipartFile(MultipartFile file, String filePath);

    /**
     * 二进制上传又拍云（未测试）
     *
     * @param suffix
     * @param data
     * @return
     */
    String uploadDataFile(String suffix, byte[] data);

    /**
     * 创建目录
     */
    Boolean createDir(String filePath);

    /**
     * 删除目录
     *
     * @return
     */
    Boolean deleteDir(String filePath);


    /**
     * 获取目标文件列表
     *
     * @param path
     * @return
     */
    String readDirIter(String path);


    /**
     * 获取文件信息
     *
     * @param filePath
     * @return
     */
    FileInfo getFileInfo(String filePath);

    /**
     * 对接官网下载文件，实际无用，仅做测试
     *
     * @return
     */
    String downloadFile(String path);

    /**
     * 删除文件
     *
     * @param filePath
     * @return
     */
    Boolean deleteFile(String filePath);

    String getBucketUsage();


    /**
     * 移动文件
     *
     * @param path         /目标文件地址
     * @param resourcePath /源文件地址
     * @param bucketName   桶名
     * @return
     */
    Boolean movefile(String path, String resourcePath, String bucketName);


    /**
     * 复制文件
     *
     * @param path         /目标文件地址
     * @param resourcePath /源文件地址
     * @param bucketName   桶名
     * @return
     */
    Boolean copyfile(String path, String resourcePath, String bucketName);


}
